1. Field of the Invention
The present invention relates generally to computer drawing programs, and in particular, to a method, apparatus, and article of manufacture for providing suggestions for a drawing solution in a computer drawing program.
2. Description of the Related Art
The use of Computer Aided Design (CAD) and drawing programs is well known in the art. Such programs may include presumptive drafting techniques that attempt to provide a possible solution or suggestion to a user in a drawing. For example, the CAD software may suggest a specific point to a user who is trying to pick a point for geometry construction (e.g., suggest the endpoint of a line that the user's cursor has approached). In more complex forms, presumptive drafting can suggest the appropriate placement and orientation of objects such as doors in walls or faucets on pipes.
Prior art presumptive drafting systems analyze geometry and look for points (or angles or rotations, etc.) of interest. In the simplest case, the system examines only points of interest on a single object, such as the endpoints and midpoint of a line segment. Getting more complex, the system may examine various extensions off of the geometry, such as perpendicular or orthogonal projections from those various points of interest.
However, as the complexity grows, a very large number of items of interest may be generated very quickly. Consider an example with two line segments and a circle. The system may start with the basics of the line segments' endpoints and midpoints as well as the circle's center. The intersection point of where the two lines (or their extensions) meet may then be added, as well as any points where the lines (or extensions) intersect the circle. Orthogonal extensions (paralleling the X, Y, and Z-axes) and perpendicular extensions (ninety (90) degrees from the line in some predefined plane) are added from these points of interest. The system may then begin to examine where those items intersect resulting in over a hundred points of interest and twenty lines of interest. There may also be several other methods of interest, such as tangent, parallel, as well as geometry that could connect the various points of interest. Further, the geometry under consideration is very rarely as simple as two line segments and a circle. Consequently, the number of potential solutions grows exponentially into an unmanageable number with the user actually interested in at most one solution.
These potential solutions may be maintained in a list. Presumptive drafting solutions may limit the number of potential solutions in the list by limiting the types of interest (endpoint, midpoint, extensions, etc.) or by only considering a subset of the geometry on the screen or by only considering solutions near the user's cursor. A geometric entity may be added to the list of items of interest that generate potential solutions merely by having a cursor control device (such as a mouse) pass over the geometric entity long enough for a background selection process to pick the passed over geometric entity. However, in such a prior art technique, no distinction is made for how the cursor control device moved over a drawing or geometric entity. Further, with additional prior art methods that limit the solutions to a manageable number of solutions, the solution the user is actually interested in may be trimmed out as well.